package com.prft.rms.entity;

// Generated Aug 18, 2009 4:13:41 PM by Hibernate Tools 3.2.1.GA

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * Employee generated by hbm2java
 */
@Entity
@Table(name = "EMPLOYEE", catalog = "RMS", uniqueConstraints = @UniqueConstraint(columnNames = "SCREEN_NAME"))
public class Employee implements java.io.Serializable {

	private Integer emid;
	private String chineseName;
	private String degree;
	private Date workStartDate;
	private String perficientLevel;
	private Date onBoardDate;
	private String gdcRole;
	private String country;
	private String home;
	private String location;
	private Date lastUpdated;
	private char isActive;
	private Integer gdcBaseMonth;
	private String screenName;
	private Date backDate;
	private Set<EmployeeKeywords> employeeKeywordses = new HashSet<EmployeeKeywords>(0);
	private Set<EmployeeSkill> employeeSkills = new HashSet<EmployeeSkill>(0);
	private Set<EmployeeCertification> employeeCertifications = new HashSet<EmployeeCertification>(0);
	private Set<AssignmentHis> assignmentHises = new HashSet<AssignmentHis>(0);
	private Set<AssignmentHis> assignmentHises_1 = new HashSet<AssignmentHis>(0);
	private Set<EmployeeSkill> employeeSkills_1 = new HashSet<EmployeeSkill>(0);
	private Set<SkillCategoryEmployee> skillCategoryEmployees = new HashSet<SkillCategoryEmployee>(0);

	public Employee() {
	}

	public Employee(Date lastUpdated, char isActive, String screenName) {
		this.lastUpdated = lastUpdated;
		this.isActive = isActive;
		this.screenName = screenName;
	}

	public Employee(String chineseName, String degree, Date workStartDate, String perficientLevel, Date onBoardDate,
			String gdcRole, String country, String home, String location, Date lastUpdated, char isActive,
			Integer gdcBaseMonth, String screenName, Date backDate, Set<EmployeeKeywords> employeeKeywordses,
			Set<EmployeeSkill> employeeSkills, Set<EmployeeCertification> employeeCertifications,
			Set<AssignmentHis> assignmentHises, Set<AssignmentHis> assignmentHises_1,
			Set<EmployeeSkill> employeeSkills_1, Set<SkillCategoryEmployee> skillCategoryEmployees) {
		this.chineseName = chineseName;
		this.degree = degree;
		this.workStartDate = workStartDate;
		this.perficientLevel = perficientLevel;
		this.onBoardDate = onBoardDate;
		this.gdcRole = gdcRole;
		this.country = country;
		this.home = home;
		this.location = location;
		this.lastUpdated = lastUpdated;
		this.isActive = isActive;
		this.gdcBaseMonth = gdcBaseMonth;
		this.screenName = screenName;
		this.backDate = backDate;
		this.employeeKeywordses = employeeKeywordses;
		this.employeeSkills = employeeSkills;
		this.employeeCertifications = employeeCertifications;
		this.assignmentHises = assignmentHises;
		this.assignmentHises_1 = assignmentHises_1;
		this.employeeSkills_1 = employeeSkills_1;
		this.skillCategoryEmployees = skillCategoryEmployees;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "EMID", unique = true, nullable = false)
	public Integer getEmid() {
		return this.emid;
	}

	public void setEmid(Integer emid) {
		this.emid = emid;
	}

	@Column(name = "CHINESE_NAME", length = 100)
	public String getChineseName() {
		return this.chineseName;
	}

	public void setChineseName(String chineseName) {
		this.chineseName = chineseName;
	}

	@Column(name = "DEGREE", length = 100)
	public String getDegree() {
		return this.degree;
	}

	public void setDegree(String degree) {
		this.degree = degree;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "WORK_START_DATE", length = 10)
	public Date getWorkStartDate() {
		return this.workStartDate;
	}

	public void setWorkStartDate(Date workStartDate) {
		this.workStartDate = workStartDate;
	}

	@Column(name = "PERFICIENT_LEVEL", length = 100)
	public String getPerficientLevel() {
		return this.perficientLevel;
	}

	public void setPerficientLevel(String perficientLevel) {
		this.perficientLevel = perficientLevel;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "ON_BOARD_DATE", length = 10)
	public Date getOnBoardDate() {
		return this.onBoardDate;
	}

	public void setOnBoardDate(Date onBoardDate) {
		this.onBoardDate = onBoardDate;
	}

	@Column(name = "GDC_ROLE", length = 100)
	public String getGdcRole() {
		return this.gdcRole;
	}

	public void setGdcRole(String gdcRole) {
		this.gdcRole = gdcRole;
	}

	@Column(name = "COUNTRY", length = 20)
	public String getCountry() {
		return this.country;
	}

	public void setCountry(String country) {
		this.country = country;
	}

	@Column(name = "HOME", length = 20)
	public String getHome() {
		return this.home;
	}

	public void setHome(String home) {
		this.home = home;
	}

	@Column(name = "LOCATION")
	public String getLocation() {
		return this.location;
	}

	public void setLocation(String location) {
		this.location = location;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "LAST_UPDATED", nullable = false, length = 19)
	public Date getLastUpdated() {
		return this.lastUpdated;
	}

	public void setLastUpdated(Date lastUpdated) {
		this.lastUpdated = lastUpdated;
	}

	@Column(name = "IS_ACTIVE", nullable = false, length = 1)
	public char getIsActive() {
		return this.isActive;
	}

	public void setIsActive(char isActive) {
		this.isActive = isActive;
	}

	@Column(name = "GDC_BASE_MONTH")
	public Integer getGdcBaseMonth() {
		return this.gdcBaseMonth;
	}

	public void setGdcBaseMonth(Integer gdcBaseMonth) {
		this.gdcBaseMonth = gdcBaseMonth;
	}

	@Column(name = "SCREEN_NAME", unique = true, nullable = false, length = 100)
	public String getScreenName() {
		return this.screenName;
	}

	public void setScreenName(String screenName) {
		this.screenName = screenName;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "BACK_DATE", length = 10)
	public Date getBackDate() {
		return this.backDate;
	}

	public void setBackDate(Date backDate) {
		this.backDate = backDate;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "employee")
	public Set<EmployeeKeywords> getEmployeeKeywordses() {
		return this.employeeKeywordses;
	}

	public void setEmployeeKeywordses(Set<EmployeeKeywords> employeeKeywordses) {
		this.employeeKeywordses = employeeKeywordses;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "employee")
	public Set<EmployeeSkill> getEmployeeSkills() {
		return this.employeeSkills;
	}

	public void setEmployeeSkills(Set<EmployeeSkill> employeeSkills) {
		this.employeeSkills = employeeSkills;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "employee")
	public Set<EmployeeCertification> getEmployeeCertifications() {
		return this.employeeCertifications;
	}

	public void setEmployeeCertifications(Set<EmployeeCertification> employeeCertifications) {
		this.employeeCertifications = employeeCertifications;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "employee")
	public Set<AssignmentHis> getAssignmentHises() {
		return this.assignmentHises;
	}

	public void setAssignmentHises(Set<AssignmentHis> assignmentHises) {
		this.assignmentHises = assignmentHises;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "employee")
	public Set<AssignmentHis> getAssignmentHises_1() {
		return this.assignmentHises_1;
	}

	public void setAssignmentHises_1(Set<AssignmentHis> assignmentHises_1) {
		this.assignmentHises_1 = assignmentHises_1;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "employee")
	public Set<EmployeeSkill> getEmployeeSkills_1() {
		return this.employeeSkills_1;
	}

	public void setEmployeeSkills_1(Set<EmployeeSkill> employeeSkills_1) {
		this.employeeSkills_1 = employeeSkills_1;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "employee")
	public Set<SkillCategoryEmployee> getSkillCategoryEmployees() {
		return this.skillCategoryEmployees;
	}

	public void setSkillCategoryEmployees(Set<SkillCategoryEmployee> skillCategoryEmployees) {
		this.skillCategoryEmployees = skillCategoryEmployees;
	}

}
